function GaussPoints = gauss_points(order) 

    switch (order)
    case 2
        GaussPoints(1).Position = -sqrt(1/3.0);
        GaussPoints(1).Weight = 1;

        GaussPoints(2).Position = sqrt(1/3.0);
        GaussPoints(2).Weight = 1;

    case 3
        GaussPoints(1).Position = -sqrt(3/5.0);
        GaussPoints(1).Weight = 5/9.0;

        GaussPoints(2).Position = 0.0;
        GaussPoints(2).Weight = 8/9.0;

        GaussPoints(3).Position = sqrt(3/5.0);
        GaussPoints(3).Weight = 5/9.0;

    case 4
        GaussPoints(1).Position = -0.861136311594052575224;
        GaussPoints(1).Weight   = 0.347854845137453857373;

        GaussPoints(2).Position = -0.339981043584856264803;
        GaussPoints(2).Weight   = 0.652145154862546142627;

        GaussPoints(3).Position = 0.339981043584856264803;
        GaussPoints(3).Weight   = 0.652145154862546142627;

        GaussPoints(4).Position = 0.861136311594052575224;
        GaussPoints(4).Weight   = 0.347854845137453857373;

    case 5
        GaussPoints(1).Position = -0.90617985;
        GaussPoints(1).Weight   = 0.23692689;

        GaussPoints(2).Position = -0.53846931;
        GaussPoints(2).Weight   = 0.47862867;

        GaussPoints(3).Position = 0.0;
        GaussPoints(3).Weight   = 0.56888889;

        GaussPoints(4).Position = 0.53846931;
        GaussPoints(4).Weight   = 0.47862867;

        GaussPoints(5).Position = 0.90617985;
        GaussPoints(5).Weight   = 0.23692689;

    case 6
        GaussPoints(1).Position = -0.93246951;
        GaussPoints(1).Weight   = 0.17132449;

        GaussPoints(2).Position = -0.66120939;
        GaussPoints(2).Weight   = 0.36076157;

        GaussPoints(3).Position = -0.23861918;
        GaussPoints(3).Weight   = 0.46791393;

        GaussPoints(4).Position = 0.23861918;
        GaussPoints(4).Weight   = 0.46791393;

        GaussPoints(5).Position = 0.66120939;
        GaussPoints(5).Weight   = 0.36076157;

        GaussPoints(6).Position = 0.93246951;
        GaussPoints(6).Weight   = 0.17132449;

    otherwise
        error('unsupported gauss order ???');
    end

    GaussPoints = GaussPoints';

end